package com.chuangke.file.service;

import java.util.List;
import java.util.Map;

import com.chuangke.file.domain.PermissionSaveDTO;
import com.chuangke.file.model.SysFilePermission;

/**
 * 文件权限管理Service接口
 * 
 * @author chuangke
 * @date "2020-09-03"
 */
public interface SysFilePermissionService {
	
	boolean save(SysFilePermission entity);

    /**
     * 查询文件权限管理列表
     * 
     * @param authFileType 授权文件类型，是网盘授权，还是文件授权（SysFilePermission.AUTH_FILE_TYPE_FILE;SysFilePermission.AUTH_FILE_TYPE_DBANK）
     * @return 文件权限管理集合
     */
    List<SysFilePermission> list(String authFileType, String userId);
    
    /**
     * 查询共享的文件
     * @param dbankId
     * @param userId
     * @return
     */
    List<SysFilePermission> listAuthFiles(String dbankId, String userId);
    
    /**
     * 查询具体文件的权限列表
     * @param fileId
     * @return
     */
    Map<String,List<SysFilePermission>> listFilePermission(String fileId) ;

    /**
     * 新增文件权限管理
     * 修改文件权限管理
     * @return 结果
     */
    void savePermission(PermissionSaveDTO psDto);
    
    /**
     * 删除文件共享
     * @param fileIds
     */
    void removeByFiles(List<String> fileIds) ;

    /**
     * 批量删除文件权限管理
     * 
     * @param ids 需要删除的文件权限管理ID
     * @return 结果
     */
    int delete(List<String> ids);
    
    /**
     * 权限变更
     */
    void change() ;
}
